package cn.ware.house.interfaces.service;

import cn.ware.house.interfaces.entity.Inventory;
import java.util.List;

/**
 * 库存服务接口，定义了对库存业务逻辑操作的抽象方法，
 * 这些方法会调用数据访问层（Mapper）的方法来实现具体功能，
 * 对外提供统一的服务接口，便于控制层调用以及业务逻辑的封装。
 */
public interface InventoryService {


    /**
     * 分页查询库存信息列表。
     *
     * @param page 当前页码，从 1 开始计数。
     * @param size 每页显示的记录数量。
     * @return 指定页码和每页数量对应的库存信息列表。
     */
    List<Inventory> findInventoriesByPage(int page, int size);

    /**
     * 根据库存记录编号查询库存信息。
     *
     * @param inventoryId 库存记录编号
     * @return 对应的库存实体对象，如果不存在则返回null
     */
    Inventory findInventoryById(Integer inventoryId);

    /**
     * 查询所有库存信息。
     *
     * @return 包含所有库存信息的列表
     */
    List<Inventory> findAllInventories();

    /**
     * 插入库存信息到数据库。
     *
     * @param inventory 要插入的库存实体对象
     * @return 插入操作是否成功（一般根据受影响行数判断）
     */
    boolean insertInventory(Inventory inventory);

    /**
     * 根据库存记录编号更新库存信息。
     *
     * @param inventory 包含更新后信息的库存实体对象
     * @return 更新操作是否成功（根据受影响行数判断）
     */
    boolean updateInventoryById(Inventory inventory);

    /**
     * 根据库存记录编号删除库存信息。
     *
     * @param inventoryId 要删除的库存记录编号
     * @return 删除操作是否成功（根据受影响行数判断）
     */
    boolean deleteInventoryById(Integer inventoryId);

    int findTotalCount();
}